// #include <iostream>
// #include <set>
// #include <unordered_set>
// using namespace std;

// int main() {
//     unordered_set<int> us;
//     // 自带去重操作
//     us.insert(1);
//     us.insert(2);
//     us.insert(3);
//     us.insert(3);
//     us.insert(4);
//     us.insert(3);
//     us.insert(2);
//     us.insert(1);
//     for(auto& s : us) {
//         cout << s << " ";
//     }
//     cout << us.count(3) << endl;
//     cout << us.size() << endl;
//     // 第一种删除
//     us.erase(1);
//     // 第二种删除
//     unordered_set<int>::iterator pos = us.find(2);
//     if(pos != us.end()) {
//         us.erase(pos);
//     }
//     unordered_set<int>::iterator it = us.begin();
//     while(it != us.end()) {
//         cout << *it << " ";
//         it++;
//     }
//     cout << endl;
//     us.clear();
//     cout << us.empty() << endl;
//     unordered_set<int> temp{1, 2, 3, 4};
//     us.swap(temp);
//     for(auto e : us) {
//         cout << e << " ";
//     }
//     cout << endl;
//     return 0;
// }

#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
    unordered_multiset<int> nums;
    nums.insert(1);
    nums.insert(3);
    nums.insert(2);
    nums.insert(5);
    nums.insert(9);
    nums.insert(8);
    for(auto& e : nums) {
        cout << e << " ";
    }
    cout << endl;
    return 0;
}